import PyInstaller.__main__
import sys
import shutil
import os
import face_recognition
import face_recognition_models
import pkg_resources

# 获取face_recognition库的路径
face_recognition_path = os.path.dirname(face_recognition.__file__)
face_recognition_models_path = os.path.dirname(face_recognition_models.__file__)

PyInstaller.__main__.run([
    'face_recognition_script.py',
    '--onefile',
    '--add-data', f'{face_recognition_path}:face_recognition',
    '--add-data', f'{face_recognition_models_path}:face_recognition_models',
    '--hidden-import', 'face_recognition.face_recognition_cli',
    '--hidden-import', 'face_recognition.api',
    '--hidden-import', 'face_recognition.face_detection_cli',
    '--hidden-import', 'face_recognition.face_recognition_cli',
    '--hidden-import', 'face_recognition_models',
    '--hidden-import', 'dlib',
    '--hidden-import', 'multiprocessing',
    '--hidden-import', 'json',
    '--hidden-import', 'argparse',  # 添加argparse库
    '--add-data', f'{pkg_resources.get_distribution("face_recognition").location}:face_recognition',
    '--add-data', f'{pkg_resources.get_distribution("face_recognition_models").location}:face_recognition_models',
    '--name', 'face_recognition_executable',
    '--console',  # 显示控制台窗口，因为脚本需要命令行参数
    '--log-level', 'ERROR',  # 只显示错误级别的日志
])

# 复制生成的可执行文件到当前目录
shutil.move('dist/face_recognition_executable', '.')
